package com.example.high_slope_electronic_sand_table.common.constant;

import com.example.high_slope_electronic_sand_table.environment.Enum.HumidityWarningEnum;
import com.example.high_slope_electronic_sand_table.environment.Enum.SpeedWarningEnum;
import com.example.high_slope_electronic_sand_table.environment.Enum.TemperatureWarningEnum;
import com.example.high_slope_electronic_sand_table.precipitation.Enum.PrecipitationWarningEnum;
import com.example.high_slope_electronic_sand_table.seepagePressure.Enum.SeepagePressureWarningEnum;
import com.example.high_slope_electronic_sand_table.slopeDisplacement.Enum.*;
import com.example.high_slope_electronic_sand_table.slopeMechanics.Enum.*;
import com.example.high_slope_electronic_sand_table.soilWaterContent.Enum.WaterContentWarningEnum;

import java.util.ArrayList;
import java.util.List;

public interface DataClassificationConstant {
    // ***********************************         环境监测     start    ***********************************
    // 温度告警
    List<TemperatureWarningEnum> temperatureWarningList = new ArrayList<>(){{
        add(TemperatureWarningEnum.WARNING_ONE);
        add(TemperatureWarningEnum.WARNING_TWO);
        add(TemperatureWarningEnum.WARNING_THREE);
    }};
    // 湿度告警
    List<HumidityWarningEnum> humidityWarningList = new ArrayList<>(){{
        add(HumidityWarningEnum.WARNING_ONE);
        add(HumidityWarningEnum.WARNING_TWO);
        add(HumidityWarningEnum.WARNING_THREE);
    }};
    // 风速告警
    List<SpeedWarningEnum> speedWarningList = new ArrayList<>(){{
        add(SpeedWarningEnum.WARNING_ONE);
        add(SpeedWarningEnum.WARNING_TWO);
        add(SpeedWarningEnum.WARNING_THREE);
    }};
    // ***********************************         环境监测     end    ***********************************

    // ***********************************         土壤含水量监测     start    ***********************************
    // 含水量告警
    List<WaterContentWarningEnum> waterContentWarningList = new ArrayList<>(){{
        add(WaterContentWarningEnum.WARNING_ONE);
        add(WaterContentWarningEnum.WARNING_TWO);
        add(WaterContentWarningEnum.WARNING_THREE);
    }};
    // ***********************************         土壤含水量监测     end    ***********************************

    // ***********************************         降水量监测     start    ***********************************
    // 降水量告警
    List<PrecipitationWarningEnum> precipitationWarningList = new ArrayList<>(){{
        add(PrecipitationWarningEnum.WARNING_ONE);
        add(PrecipitationWarningEnum.WARNING_TWO);
        add(PrecipitationWarningEnum.WARNING_THREE);
    }};
    // ***********************************         降水量监测     end    ***********************************

    // ***********************************         边坡力学监测-支护结构     start    ***********************************
    // 应力告警
    List<SupportStructureStressWarningEnum> supportStructureStressWarningList = new ArrayList<>(){{
        add(SupportStructureStressWarningEnum.WARNING_ONE);
        add(SupportStructureStressWarningEnum.WARNING_TWO);
        add(SupportStructureStressWarningEnum.WARNING_THREE);
    }};
    // 应变告警
    List<SupportStructureStrainWarningEnum> supportStructureStrainWarningList = new ArrayList<>(){{
        add(SupportStructureStrainWarningEnum.WARNING_ONE);
        add(SupportStructureStrainWarningEnum.WARNING_TWO);
        add(SupportStructureStrainWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡力学监测-支护结构     end    ***********************************

    // ***********************************         边坡力学监测-应力监测     start    ***********************************
    // 坡体应力告警
    List<SlopeStressWarningEnum> slopeStressWarningList = new ArrayList<>(){{
        add(SlopeStressWarningEnum.WARNING_ONE);
        add(SlopeStressWarningEnum.WARNING_TWO);
        add(SlopeStressWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡力学监测-应力监测     end    ***********************************

    // ***********************************         边坡力学监测-锚索测力计     start    ***********************************
    // 坡体应力告警
    List<AnchorCableDynamometerWarningEnum> anchorCableDynamometerWarningList = new ArrayList<>(){{
        add(AnchorCableDynamometerWarningEnum.WARNING_ONE);
        add(AnchorCableDynamometerWarningEnum.WARNING_TWO);
        add(AnchorCableDynamometerWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡力学监测-锚索测力计     end    ***********************************

    // ***********************************         边坡力学监测-锚杆测力计     start    ***********************************
    // 坡体应力告警
    List<AnchorBoltDynamometerWarningEnum> anchorBoltDynamometerWarningList = new ArrayList<>(){{
        add(AnchorBoltDynamometerWarningEnum.WARNING_ONE);
        add(AnchorBoltDynamometerWarningEnum.WARNING_TWO);
        add(AnchorBoltDynamometerWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡力学监测-锚杆测力计     end    ***********************************

    // ***********************************         边坡位移监测-表面位移监测     start    ***********************************
    // 地表位移告警
    List<SurfaceDisplacementWarningEnum> surfaceDisplacementWarningList = new ArrayList<>(){{
        add(SurfaceDisplacementWarningEnum.WARNING_ONE);
        add(SurfaceDisplacementWarningEnum.WARNING_TWO);
        add(SurfaceDisplacementWarningEnum.WARNING_THREE);
    }};
    // 地表沉降告警
    List<SurfaceSettlementWarningEnum> surfaceSettlementWarningList = new ArrayList<>(){{
        add(SurfaceSettlementWarningEnum.WARNING_ONE);
        add(SurfaceSettlementWarningEnum.WARNING_TWO);
        add(SurfaceSettlementWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡位移监测-表面位移监测     end    ***********************************

    // ***********************************         边坡位移监测-深层位移监测     start    ***********************************
    // 深层位移告警
    List<DeepDisplacementWarningEnum> deepDisplacementWarningList = new ArrayList<>(){{
        add(DeepDisplacementWarningEnum.WARNING_ONE);
        add(DeepDisplacementWarningEnum.WARNING_TWO);
        add(DeepDisplacementWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡位移监测-深层位移监测     end    ***********************************

    // ***********************************         边坡位移监测-支护结构变形监测     start    ***********************************
    // 应变告警
    List<StructureDeformationStrainWarningEnum> structureDeformationStrainWarningList = new ArrayList<>(){{
        add(StructureDeformationStrainWarningEnum.WARNING_ONE);
        add(StructureDeformationStrainWarningEnum.WARNING_TWO);
        add(StructureDeformationStrainWarningEnum.WARNING_THREE);
    }};
    // 支护结构表面位移告警
    List<StructureSurfaceDisplacementWarningEnum> structureSurfaceDisplacementWarningList = new ArrayList<>(){{
        add(StructureSurfaceDisplacementWarningEnum.WARNING_ONE);
        add(StructureSurfaceDisplacementWarningEnum.WARNING_TWO);
        add(StructureSurfaceDisplacementWarningEnum.WARNING_THREE);
    }};
    // ***********************************         边坡位移监测-支护结构变形监测     end    ***********************************

    // ***********************************         地下水位监测     start    ***********************************
    // 地下水位
    List<UndergroundWaterLevelWarningEnum> undergroundWaterLevelWarningList = new ArrayList<>(){{
        add(UndergroundWaterLevelWarningEnum.WARNING_ONE);
        add(UndergroundWaterLevelWarningEnum.WARNING_TWO);
        add(UndergroundWaterLevelWarningEnum.WARNING_THREE);
    }};
    // ***********************************         地下水位监测     end    ***********************************

    // ***********************************         渗流压力监测     start    ***********************************
    // 渗流压力
    List<SeepagePressureWarningEnum> seepagePressureWarningList = new ArrayList<>(){{
        add(SeepagePressureWarningEnum.WARNING_ONE);
        add(SeepagePressureWarningEnum.WARNING_TWO);
        add(SeepagePressureWarningEnum.WARNING_THREE);
    }};
    // ***********************************         渗流压力监测     end    ***********************************
}
